<?php

class Segmento_InsereController extends Zend_Controller_ActionAquiles {

    public function init() {
        parent::init();
        $this->view->title = 'Adição de Segmento.';
    }
    
    public function indexAction() {
        $this->view->form = new Application_Form_Segmento_Insere();
    }

    public function validaAction() {
        $resp = new Util_Function_JsonResponse();
        $form = new Application_Form_Segmento_Insere();
        $form->setDefaults($this->_request->getPost());

        $nome = $form->descricao->getValue();
        if (!isset($nome)) {
            $resp->addErro(utf8_encode("A 'Descrição' é obrigatória."));
        }

        echo Zend_Json::encode(array("erros" => $resp->getErros()), Zend_Json::TYPE_OBJECT);
        $this->_helper->layout()->disableLayout();
        die();
    }

    public function novoAction() {
        $codigo = $this->_request->getParam('codigo');
        $form = new Application_Form_Segmento_Insere($codigo);
        $model = Application_Model_Segmento::getInstance();
        $modelAgenda = Application_Model_SegmentoAgenda::getInstance();
        $form->setDefaults($this->_request->getPost());
        $labels = array('dt_cadastro','dt_exclusao');
        
        $session = new Zend_Session_Namespace('msg');
        
        
        $arr = Array();
        $num_ordem = 0;
        $num_hora = 0;
        $num_codigo = 0;
        echo('<pre>');
        //print_r($this->_request->getPost());
        
        foreach ($this->_request->getPost() as $key => $value) {
            if(strpos($key,'ordem_') !== false){
                $arr[$num_ordem]['ordem'] = $value;
                $num_ordem++;
            }else if(strpos($key,'hora_') !== false){
                if(empty($value)){
                    $value = 'null';
                }
                $arr[$num_hora]['hora'] = $value;
                $num_hora++;
            }
        }
        
        $codigos = $this->_request->getParam('codSegAgenda');
        $n = 0;
        foreach($codigos as $cod => $val){
            $arr[$n]['codigo'] = $val;
            $n++;
        }
        
        for($n=0;$n<sizeof($arr);$n++){
            if(sizeof($arr[$n])<3){
                $arr[$n]['codigo'] = null;
            }
        }
        
        //print_r($arr);die();
        
        if(isset($codigo)){
            $model->update($form->getValues());
            $modelAgenda->update($arr, $codigo, $codigos);
            //$arrDelSegAgenda = $codigos;
            //$modelAgenda->removeDiferente($arrDelSegAgenda);
            $msg['msg1'] = 'Segmento modificado com sucesso.';
        }else{
            $formPost = $form->getValues();
            $model->insert($formPost);
            $novoSeg = $model->getByDesc($formPost['descricao']);
            $codSeg = $novoSeg[0];
            $msg['msg1'] = 'Segmento adicionado com sucesso.';
            $modelAgenda->insert($arr, $codSeg);
        }
        
        $session->msgs =$msg;
        $this->_helper->redirector('index','consulta','segmento');
    }

    
    public function deleteAction() {
        $codigo = $this->_request->getParam('codigo');
        if(is_numeric($codigo)){
            $model = Application_Model_Segmento::getInstance();
            $model->remove($codigo);
            $msg['msg1'] = 'Segmento excluído com sucesso.';
            $session = new Zend_Session_Namespace('msg');
            $session->msgs =$msg;
        }else{
            $msg['delete1'] = 'Não foi possível excluir o Segmento.';
            $session = new Zend_Session_Namespace('erros');
            $session->erros =$msg;
        }
        
        $this->_helper->redirector('index','consulta','segmento');
    }
    
    public function deleteSegmentoAgendaAction(){
        $codigo = $this->_request->getParam('codigo');
        $segmento = $this->_request->getParam('segmento');

        $model = Application_Model_SegmentoAgenda::getInstance();
        $model->remove($codigo, $segmento);
        $this->_helper->layout()->disableLayout();
        die();
    }

}